草庐IT

Android AsyncTask 内存泄漏

全部标签

c++ - 引用变量的内存地址

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Isthereanywaytofindtheaddressofareference?当我们打印实际变量和引用变量的地址时,为什么显示相同的地址?

c++ - C++ 中的内存泄漏。编程风格

对于小程序,我们可以通过这样的方式防止内存泄漏:proc(){//allocatememoryformatrixtry{}catch{//freematrixmemory}...//freematrixmemory}如果我们的程序更复杂:proc(){//allocatememoryformatrixtry{}catch{//freematrixmemory}...try{}catch{//freematrixmemory}...try{}catch{//freematrixmemory}...//freematrixmemory}看起来有些笨拙。是否存在更好的方法、更好的内存泄漏控制

C++ 内存分配

当使用C++时,如果有一个类:classMyClass{charmemory1bye;intmemory4bytes;intanother4bytes;};这个类在内存中总共使用了9个字节……所以如果我做类似的事情:MyClass*t1;这将为我提供该类的可用地址,但它会分配9个字节吗?它会调用默认构造函数吗?或者我是否需要将这9个字节分配给类?如果那时我调用了类似的东西:t1=(MyClass*)newMyClass;会不会被认为是内存泄漏?换句话说,旧地址会怎样? 最佳答案 不要对数据类型的大小做出假设,它们取决于实现。MyCl

c++ - Windows C 代码的内存分配

我想知道在WindowsC编程中推荐使用哪种方法:使用malloc或Win32HeapAlloc(也许是VirtualAlloc?)函数。我已阅读MSDNMemoryManagementFunctionsarticle和MSDN上关于malloc和HeapAlloc的文章,但他们没有说应该使用哪一个以及在什么情况下。 最佳答案 坚持使用malloc,除非你有令人信服的理由使用不同的东西。它将根据操作系统内存分配原语在底层实现,但您自己深入到该层并没有真正的优势。我认为一些API调用需要从Windows堆中分配内存块,但当您遇到它们时

c++ - 一个关于内存使用的简单C++问题

有什么区别(内存方面):for(intx=0;x和inty=0;for(intx=0;x我一直想知道它们是相同的还是第一个是浪费内存?... 最佳答案 在内存方面,没有区别。y在堆栈上,无论它在方法中声明在哪里。这里唯一的区别是y的范围:在第二种情况下,它被限制在for循环体中;首先,它不是。这纯粹是在语言层面:同样,y的分配方式完全相同,即在堆栈上。为了清楚地说明这一点,这里有一个代码示例:voidmethod1(){for(;;){inta=10;}}voidmethod2(){inta;for(;;){a=10;}}这是两种情

c++ - 如何在 C++ 中为缓冲区分配更多内存?

我有指针str:char*str=newchar[10];我使用str指向的内存块来存储数据。如何为str指向的缓冲区分配更多字节,而不丢失缓冲区中存储的旧数据? 最佳答案 改为使用std::string。它会做你需要的,而不用担心分配、复制等。你仍然可以通过c_str()函数访问原始内存。甚至std::vector会很适合你。 关于c++-如何在C++中为缓冲区分配更多内存?,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - new操作分配的内存是连续的吗?

如题所示,我想知道在c++中,一个new操作分配的内存是否连续... 最佳答案 BYTE*data=newBYTE[size];在此代码中,无论给定大小,返回的内存区域都是连续。如果堆管理器不能分配size的连续内存,则失败。将返回异常(或malloc中的NULL)。程序员总是会在进程的地址空间中看到连续(是的,无限:-)内存的错觉。这就是虚拟内存为程序员提供的。请注意,程序员(少数嵌入式系统除外)总是看到虚拟内存。然而,几乎连续的内存可以以任意方式映射到物理内存中(以“页面”大小为粒度,通常为4KB)。该映射您看不到,而且大多数情

c++ - C++中的内存泄漏/内存分配

我在C++中有以下函数voidfunc1(){char*p="Testformemoryleak";}当func1()被调用时,变量的内存分配在哪里?是在栈中还是堆中?是否应显式调用deletep;? 最佳答案 字符串文字的内存分配在静态存储中,分配持续时间是整个程序运行时间。您不应该调用delete-调用delete会导致未定义的行为。 关于c++-C++中的内存泄漏/内存分配,我们在StackOverflow上找到一个类似的问题: https://stac

c++ - valgrind 如何以及何时检测内存泄漏

我的代码中存在内存泄漏。堆随着流的触发而不断增加。在我的代码中,我有一个while(1)循环,它基本上在队列中等待。当从web服务触发该流时,传入的消息被插入队列,并调用c++中的一个方法,该方法接收消息并实现图形形式的流。对于每个触发器,我发现堆中的内存增加了604kb。我需要解决这个问题。我停止了服务[在产品中运行的二进制文件]。我用valgrind启动了服务[将二进制文件作为valgrind的输入]valgrind--log-file=/home/valgrind-output.txt--leak-check=full但是当二进制文件运行时它没有显示任何泄漏,只有当我停止服务时我

java - 类、静态方法或实例方法 - 编译语言中的内存消耗和可执行文件大小?

我一直想知道如何尝试提高我的Flexswf的性能和大小,类与静态方法与实例方法如何影响性能和最终编译的“可执行文件”的大小?思考如何应用类似HAML的东西和Sass弯曲...假设我正在构建一个包含大量组件和View的非常大的管理界面,并且每个组件都应用了一个Skin对象(考虑SparkSkinningArchitectureforFlex)。现在我想为每个皮肤添加10种不同的效果(假设屏幕上有100个组件,所以有1000个实例化效果)。是否更好:让每个效果成为一个类(BlurEffect、GlowEffect...),并将这10个添加到皮肤。让所有Effects成为一个更大类中的实例方